#pragma once

#include <map>
#include "Pointer.h"
#include "HashedString.h"

class Font
{
public:
	typedef std::map<HashedString, Pointer<Font>> Map_t;
	typedef std::pair<HashedString, Pointer<Font>> Pair_t;

	Font( const std::string& name, int base, int height, std::vector<int>& widths );
	const int Base();
	const int Height();
	const HashedString& Name();
	
	const unsigned int CharWidths( unsigned int character );
	const unsigned int LineWidths( std::string& string );
private:
	typedef std::vector<int> CharWidthVector_t;

	const HashedString m_Name;
	const int m_Base;
	const int m_Height;
	const CharWidthVector_t m_CharWidths;
};
